<?php

class interview extends ModuleModel {

    /**
     *
     * @var Query
     */
    private $query;

    function __construct() {
        parent::__construct();
        $this->query = ModulesContext::instance()->getQueryFactory()->getQuery();
    }

    function GetByInscrito($IdInscrito) {

        $query = ModulesContext::instance()->getQueryFactory()->getQuery();
        $result = $query->select()
                ->from(array("acaweb_entrevista_respondida"))
                ->where("id_inscrito", $IdInscrito)
                ->get();

        $result = $result->resultList();

        $array = array();

        if (isset($result)) {
            foreach ($result as $row) {
                $entity = $this->convertToEntity($row);
                array_push($array, $entity);
            }
        }

        return $array;
    }

    function Create(EntrevistaRespondida $entity) {
        $this->query->insertInto("acaweb_entrevista_respondida")
                ->set("id_inscrito", $entity->getIdInscrito())
                ->set("respuesta", $entity->getRespuesta())
                ->set("id_pregunta", $entity->getPregunta()->getIdEntrevista())
                ->commit();
    }

    function contarByInscrito($idInscrito) {
        return $this->query->select()
                        ->from(array("acaweb_entrevista_respondida"))
                        ->where("id_inscrito", $idInscrito)
                        ->countAllResults();
    }

    private function convertToEntity($data) {
        $entity = new EntrevistaRespondida();

        $entity->setIdEntrevistaRespondida($data["id_entrevista_respondida"]);
        $entity->setRespuesta($data["respuesta"]);
        $entity->setIdInscrito($data["id_inscrito"]);
        $entity->setPregunta($this->GetPregunta($data["id_pregunta"]));

        return $entity;
    }

    private function GetPregunta($id) {
        $query = ModulesContext::instance()->getQueryFactory()->getQuery();
        $result = $query->select()
                ->from(array("acaweb_entrevista"))
                ->where('id_entrevista', $id)
                ->get();

        $result = $result->firstRow();

        $entity = new Preguntas();
        $entity->setIdEntrevista($result["id_entrevista"]);
        $entity->setPregunta($result["pregunta"]);
        $entity->setTipoPregunta($result["tipo_pregunta"]);

        return $entity;
    }

}

?>
